################################################################################
#
# WangXun 10GbE PCI Express Linux Network Driver
# Copyright(c) 2015 - 2017 Beijing WangXun Technology Co., Ltd.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms and conditions of the GNU General Public License,
# version 2, as published by the Free Software Foundation.
#
# This program is distributed in the hope it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
# more details.
#
# The full GNU General Public License is included in this distribution in
# the file called "COPYING".
#
#
################################################################################

# common Makefile rules useful for out-of-tree Linux driver builds
#
# Usage: include configure
#
# After including, you probably want to add a minimum_kver_check call
#
# Required Variables:
# DRIVER
#   -- Set to the lowercase driver name

#####################
# Helpful functions #
#####################
CHNOS			:= 0	# default 0
				# kylinos	KYLIN
				# uosos 	UOS
				# euleros	EULER

DEFAULT_FCPAUSE		:= 0xFFFF	# 0x3800
MAX_REQUEST_SIZE 	:= 256		# 256/512
DEFAULT_TXD 	:= 1024	# deepinsw 1024
DEFAULT_TX_WORK		:= 256	# deepinsw 512
CL72_KRTR_PRBS_MODE_EN	:= 0xFFFF	#0xffff to close
CL72_KRTR_PRBS31_EN	:= 0
AN73_TRAINNING_MODE	:= 3	# 0 : kd5886 1: centc7132 2: wx2wx 3: 8096

SFI_SET			:= 0
SFI_MAIN		:= 24
SFI_PRE			:= 4
SFI_POST		:= 16
SFI_TXRX_PIN 		:= 0	#rx : 0xf  tx : 0xf0 

AUTO			:= 1	# kr an73/kx an37 default 1 to open
KR_FEC			:= 0
KR_MODE			:= 0	# 1 to open log
KR_AN73_PRESET		:= 0	#default to preset ; init : 1
KR_POLLING 		:= 0
KR_RESTART_T_MODE	:= 0
KR_SET			:= 0
KR_MAIN			:= 27
KR_PRE			:= 8
KR_POST			:= 44
KR_TXRX_PIN 		:= 0	#rx : 0xf  tx : 0xf0 

KX4_SET			:= 0
KX4_MAIN		:= 40
KX4_PRE			:= 0
KX4_POST		:= 0
KX4_TXRX_PIN 		:= 0	#rx : 0xf  tx : 0xf0 

KX_SET			:= 0
KX_MAIN			:= 24
KX_PRE			:= 4
KX_POST			:= 16 

KX_SGMII		:= 0		# 1   0x18090 :0xcf00
BOND_CHECK_LINK_MODE	:= 0	# default 0 use int to check link up/down

TXGBE_STATIC_ITR	:= 1	# Maximum interrupts per second, per vector, (0,1,980-500000), default 1
TXGBE_PCIE_RECOVER:= 1   # pcie recovery, defalut to open
TXGBE_RECOVER_CHECK := 1   # recover check log , default 1
TXGBE_DIS_COMP_TIMEOUT := 1   # dis completion timeout, default 1 to dis

####################################
ifeq (${CHNOS}, UOS)
EXTRA_CFLAGS += -DCONFIG_UOS_KERNEL=$(CONFIG_UOS_KERNEL)
endif
ifeq ($(CHNOS), EULER)
EXTRA_CFLAGS += -DCONFIG_EULER_KERNEL=$(CONFIG_EULER_KERNEL)
endif
ifeq ($(CHNOS), KYLIN)
EXTRA_CFLAGS += -DCONFIG_KYLIN_KERNEL=$(CONFIG_KYLIN_KERNEL)
endif

EXTRA_CFLAGS += -DDEFAULT_TXD=$(DEFAULT_TXD)
EXTRA_CFLAGS += -DDEFAULT_TX_WORK=$(DEFAULT_TX_WORK)
EXTRA_CFLAGS += -DMAX_REQUEST_SIZE=$(MAX_REQUEST_SIZE)
EXTRA_CFLAGS += -DDEFAULT_FCPAUSE=$(DEFAULT_FCPAUSE)
EXTRA_CFLAGS += -DCL72_KRTR_PRBS_MODE_EN=$(CL72_KRTR_PRBS_MODE_EN)
EXTRA_CFLAGS += -DCL72_KRTR_PRBS31_EN=$(CL72_KRTR_PRBS31_EN)
EXTRA_CFLAGS += -DAN73_TRAINNING_MODE=$(AN73_TRAINNING_MODE)

EXTRA_CFLAGS += -DSFI_SET=$(SFI_SET)
EXTRA_CFLAGS += -DSFI_MAIN=$(SFI_MAIN)
EXTRA_CFLAGS += -DSFI_PRE=$(SFI_PRE)
EXTRA_CFLAGS += -DSFI_POST=$(SFI_POST)
EXTRA_CFLAGS += -DSFI_TXRX_PIN=$(SFI_TXRX_PIN)

EXTRA_CFLAGS += -DAUTO=$(AUTO)
EXTRA_CFLAGS += -DKR_FEC=$(KR_FEC)
EXTRA_CFLAGS += -DKR_MODE=$(KR_MODE)
EXTRA_CFLAGS += -DKR_AN73_PRESET=$(KR_AN73_PRESET)
EXTRA_CFLAGS += -DKR_POLLING=$(KR_POLLING)
EXTRA_CFLAGS += -DKR_RESTART_T_MODE=$(KR_RESTART_T_MODE)
EXTRA_CFLAGS += -DKR_SET=$(KR_SET)
EXTRA_CFLAGS += -DKR_MAIN=$(KR_MAIN)
EXTRA_CFLAGS += -DKR_PRE=$(KR_PRE)
EXTRA_CFLAGS += -DKR_POST=$(KR_POST)
EXTRA_CFLAGS += -DKR_TXRX_PIN=$(KR_TXRX_PIN)

EXTRA_CFLAGS += -DKX4_SET=$(KX4_SET)
EXTRA_CFLAGS += -DKX4_MAIN=$(KX4_MAIN)
EXTRA_CFLAGS += -DKX4_PRE=$(KX4_PRE)
EXTRA_CFLAGS += -DKX4_POST=$(KX4_POST)
EXTRA_CFLAGS += -DKX4_TXRX_PIN=$(KX4_TXRX_PIN)

EXTRA_CFLAGS += -DKX_SET=$(KX_SET)
EXTRA_CFLAGS += -DKX_MAIN=$(KX_MAIN)
EXTRA_CFLAGS += -DKX_PRE=$(KX_PRE)
EXTRA_CFLAGS += -DKX_POST=$(KX_POST)

EXTRA_CFLAGS += -DKX_SGMII=$(KX_SGMII)
EXTRA_CFLAGS += -DBOND_CHECK_LINK_MODE=$(BOND_CHECK_LINK_MODE)
#EXTRA_CFLAGS += -DPOLL_LINK_STATUS=$(POLL_LINK_STATUS)
EXTRA_CFLAGS += -DTXGBE_STATIC_ITR=$(TXGBE_STATIC_ITR)

EXTRA_CFLAGS += -DTXGBE_PCIE_RECOVER=$(TXGBE_PCIE_RECOVER)
EXTRA_CFLAGS += -DTXGBE_RECOVER_CHECK=$(TXGBE_RECOVER_CHECK)
EXTRA_CFLAGS += -DTXGBE_DIS_COMP_TIMEOUT=$(TXGBE_DIS_COMP_TIMEOUT)

